Quando comecei a cursar Sistemas de Informação, meu então professor Aluisio Eustáquio da Silva nos passou uma lista com 40 boas práticas de programação em C#.
Um bom código deve ser limpo, claro e direto!
A lista a seguir fala de C#, mas contém boas práticas para qualquer linguagem de programação:
Lista: 40 boas práticas de programação em C#
Se você está começando sua carreira agora, não deixe de dar uma olhada!
- Escreva os programas de maneira bem simples e direta (sem complicar)
- Primeiramente leia documentos a respeito da versão da Linguagem C# / que estiver usando;
- Em seguida faça pequenos programas para testar os comandos da linguagem;
- Leia e estude cada mensagem de erro emitida pelo compilador;
- Não se esqueça de começar todo programa com um comentário descrevendo a finalidade do mesmo;
- Coloque nas funções, que imprimem alguma mensagem, como último caractere de impressão, um comando de fim de linha (n ou WriteLine);
- Enfim, termine toda função com return;
- Recue o corpo de uma função (endentação), fazendo com que a mesma fique mais legível;
- Estabeleça então um critério de espaços nos recuos (Padrão C#: 4 espaços);
- Dessa forma, declare cada variável em uma linha para facilitar a escrita de comentários;
- Coloque um espaço após cada vírgula (ou ponto e vírgula) na estrutura for
- Antes de mais nada, escolha nomes significativos para as variáveis;
- Comece o nome dos identificadores com letra MAIÚSCULA, e, da mesma forma, cada palavra das variáveis com nomes compostos;
- Declare as variáveis sempre no início das funções;
- Coloque sempre uma linha em branco entre a declaração de variáveis e os comandos seguintes;
- Coloque espaços dos dois lados dos operadores aritméticos;
- Escreva parênteses, ainda que redundantes, para facilitar o entendimento de expressões aritméticas;
- Do mesmo modo, quebre um comando longo em comandos menores e mais simples;
- Faça indentação no corpo de uma estrutura;
- Escreva um comando por linha;
- Em seguida, separe os comandos longos em várias linhas, quebrando-as em pontos que façam sentido;
- Consulte as tabelas de precedência dos operadores aritméticos e, em caso de dúvida, escreva parênteses para efetuar as operações da forma pretendida;
- Use um “pseudocódigo” para “bolar” um programa;
- Em seguida, idente o corpo de todos os comandos if / else;
- Indente todos os níveis com o mesmo espaçamento
- Escreva sempre chaves nos comandos de controle (if/else, while, for etc.), mesmo que não seja obrigatório
- Digite as chaves, parênteses e colchetes (abrindo e fechando) antes de digitar os comando ou expressões entre eles
- Inicialize contadores, somatórios ou produtórios;
- Em seguida imprima mensagens de erro em expressões que tenham restrições de valores, tais como divisão por zero, raiz quadrada de número negativo, entrada de dados inválidas, dentre outras;
- Solicite ao usuário os valores a serem digitados, com mensagens adequadas;
- Explicite os valores dos “flags” nas entradas de dados que os contêm;
- Use o valor absoluto da diferença entre dois números reais, menor que um valor pequeno, em vez de comparar números reais com sinal de igualdade ou desigualdade;
- “Inicialize” as variáveis ao declará-las, sempre que possível;
- Escreva os operadores unários sempre próximos das variáveis (sem espaços);
- Controle as repetições com valores inteiros;
- Evite muitos níveis de indentação, pois estes tornam os programas difíceis de serem entendidos;
- Use <= ou >= em lugar de < ou >, nas estruturas de repetição, para evitar executar uma iteração a menos
- Evite alterar as variáveis de controle do laço for, dentro do corpo do laço;
- Coloque sempre o default no comando switch para chamar a atenção em casos excepcionais;
- Finalmente, teste os programas exaustivamente!